「ライブラリを使うときに「 使うがexposeしない 」という段階が個人的にある話
「使うがexposeしない」というレベルがあることを書きたくて書いている。
exposeしないが意味するのは、例えば自分でライブラリを作ろうとしているとする。
このときに自分のライブラリの内部だけ隠蔽されて使われるライブラリ。
つまり、自分のライブラリのどの関数の引数にも登場せず、どの関数の戻り値にも登場しない。関数に限らず定数も。
全部を網羅できそうな言い方は、自分のライブラリのドキュメントを作ったときに、exposeしたくない使っているライブラリの型が登場しないという風になると思う。
目的は、使っているライブラリを他のライブラリに移行するときに破壊的な変更せずに済ませたいから。
もし自分のライブラリでEitherをexposeすると、自分のライブラリを使う人にもio-tsを利用することを強制することになる。 exposeする可能性があるとすれば、io-tsの"ための"のhelperライブラリを作る時。あたりまえだがその時は遠慮なくexpose。 個人的にはポータビリティをすごく意識してものを作っているつもり。だから標準ライブラリでなるべく完結をしたい。依存が増えるといざ大きく動こうとしたときに足かせになる。